Get channel
curl --request GET \
--url https://firespark.cloud/api/integrations/v1/channels/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://firespark.cloud/api/integrations/v1/channels/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://firespark.cloud/api/integrations/v1/channels/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://firespark.cloud/api/integrations/v1/channels/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://firespark.cloud/api/integrations/v1/channels/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://firespark.cloud/api/integrations/v1/channels/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://firespark.cloud/api/integrations/v1/channels/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"id": "app",
"uid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"organization_id": "f1e2d3c4-b5a6-7890-fedc-ba0987654321",
"merchant_id": "c1d2e3f4-a5b6-7890-cdef-123456789abc",
"name": "Mobile app",
"type": "APP",
"status": "ACTIVE",
"cms_template_id": "d4e5f6a7-b8c9-0123-def4-567890abcdef",
"cms": {
"id": "d4e5f6a7-b8c9-0123-def4-567890abcdef",
"name": "App landing page",
"entity": "CHANNELS",
"status": "ACTIVE",
"fields": [
{
"name": "hero_title",
"type": "TEXT",
"label": { "en_us": "Hero title" },
"required": true,
"value": "Order from our app"
}
]
}
}
}
Channels
Get channel
Read one sales channel definition by external id.
GET
/
channels
/
{id}
Get channel
curl --request GET \
--url https://firespark.cloud/api/integrations/v1/channels/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://firespark.cloud/api/integrations/v1/channels/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://firespark.cloud/api/integrations/v1/channels/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://firespark.cloud/api/integrations/v1/channels/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://firespark.cloud/api/integrations/v1/channels/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://firespark.cloud/api/integrations/v1/channels/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://firespark.cloud/api/integrations/v1/channels/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"id": "app",
"uid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"organization_id": "f1e2d3c4-b5a6-7890-fedc-ba0987654321",
"merchant_id": "c1d2e3f4-a5b6-7890-cdef-123456789abc",
"name": "Mobile app",
"type": "APP",
"status": "ACTIVE",
"cms_template_id": "d4e5f6a7-b8c9-0123-def4-567890abcdef",
"cms": {
"id": "d4e5f6a7-b8c9-0123-def4-567890abcdef",
"name": "App landing page",
"entity": "CHANNELS",
"status": "ACTIVE",
"fields": [
{
"name": "hero_title",
"type": "TEXT",
"label": { "en_us": "Hero title" },
"required": true,
"value": "Order from our app"
}
]
}
}
}
Returns a single channel for the authenticated merchant. Use this endpoint when you already know the external
id and need the current name, type, status, and CMS configuration without listing all channels.
Requires an access token with the
channels:read scope. See
Token to obtain a token.Request
Replace{id} with the external channel identifier.
curl "https://firespark.cloud/api/integrations/v1/channels/app" \
-H "Authorization: Bearer ACCESS_TOKEN"
Response
The response wraps one channel object indata.
{
"data": {
"id": "app",
"uid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"organization_id": "f1e2d3c4-b5a6-7890-fedc-ba0987654321",
"merchant_id": "c1d2e3f4-a5b6-7890-cdef-123456789abc",
"name": "Mobile app",
"type": "APP",
"status": "ACTIVE",
"cms_template_id": "d4e5f6a7-b8c9-0123-def4-567890abcdef",
"cms": {
"id": "d4e5f6a7-b8c9-0123-def4-567890abcdef",
"name": "App landing page",
"entity": "CHANNELS",
"status": "ACTIVE",
"fields": [
{
"name": "hero_title",
"type": "TEXT",
"label": { "en_us": "Hero title" },
"required": true,
"value": "Order from our app"
}
]
}
}
}
Path parameters
| Parameter | Type | Description |
|---|---|---|
id | string | External channel identifier. Alphanumeric characters, _, and - only. 1–64 characters. Unique per merchant. |
Channel object
| Field | Type | Description |
|---|---|---|
id | string | External channel identifier. Matches the path parameter. |
uid | string (UUID) | Fire spark internal identifier. |
organization_id | string (UUID) | Organization that owns the merchant. |
merchant_id | string (UUID) | Merchant the channel belongs to. |
name | string | Display name. 1–100 characters. |
type | string | Channel surface. One of APP, WEB, KIOSK, POS, CALL_CENTER, or AGGREGATOR. Set at creation; cannot change. |
status | string | ACTIVE or INACTIVE. |
cms_template_id | string (UUID) | CMS template linked to this channel. null when no template is assigned. |
cms | object | Read-only. null when cms_template_id is null. When set, the resolved CMS template for this channel. |
cms
cms
Present only when
Each field in
cms_template_id is not null. Contains the resolved CMS template assigned to the channel.| Field | Required | Type | Description |
|---|---|---|---|
id | Yes | string (UUID) | Template identifier. Matches cms_template_id. |
name | Yes | string | Template name. 1–100 characters. |
entity | Yes | string | Always CHANNELS for channel responses. |
status | Yes | string | ACTIVE or INACTIVE. |
fields | Yes | array | Template fields with their current stored values. |
fields:| Field | Required | Type | Description |
|---|---|---|---|
name | Yes | string | Field key. |
type | Yes | string | TEXT, SELECT, IMAGE, or LIST. |
label | No | object | Optional localized label keyed by locale. |
required | No | boolean | Whether the field is required. |
placeholder | No | string | Optional placeholder text. |
options | No | array | For SELECT fields — objects with label and value. |
altText | No | string | For IMAGE fields — alternative text. |
src | No | string | For IMAGE fields — image URL. |
href | No | string | For IMAGE fields — optional link URL. |
value | No | varies | Current stored value for this channel. Omitted when empty. |
Error responses
| Status | Description |
|---|---|
401 | Missing or invalid access token. |
403 | Token does not include the channels:read scope. |
404 | No channel exists with the given id. |
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
External channel identifier.
Required string length:
1 - 64Pattern:
^[a-zA-Z0-9_-]+$Response
200 - application/json
Ok
Show child attributes
Show child attributes
⌘I